package com.ruoyi.finance.collection.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ice.core.context.IceRoam;
import com.ruoyi.business.projectRecord.domain.ProjectRecord;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.finance.collection.domain.BillCollection;
import com.ruoyi.finance.collection.domain.VBillCollection;

import java.util.Date;
import java.util.List;

/**
* @author 80661
* @description 针对表【BILL_COLLECTION(收款费项表)】的数据库操作Service
* @createDate 2023-07-04 15:02:31
*/
public interface BillCollectionService extends IService<BillCollection> {
	
	List<BillCollection> listByParams(BillCollection billCollection);

	AjaxResult autoCollection(Long projectId);

	AjaxResult autoCollectionall(Long[] projectIds);

	//设置一级费目code和name
	public void setBasicFeeCodeAndName(BillCollection billCollection);

	//根据计费结果生成所需插入或更新的收款费项
	public List<BillCollection> getAutoCollectionList(List<IceRoam> iceRoams, ProjectRecord projectRecord);

	//对账单ID查询收款费项
	public List<VBillCollection> listVBCollectionByStatementId(Long statementId);

	public List<BillCollection> listBillCollectionByStatementId(Long statementId);

	boolean updateByStatementId(Long statementId);
	
	void updateDelNameAndDelTime(Long billCollectionId, String delName, Date delTime);
	
	//生成对账单时对费项ID列表进行简化
	String distinguishBillCollectionIds(List<Long> billCollectionIdS,String companyCod);

}
